Forum des exercices du projet Zuul

Exercice 7.47.1

  
 
Avatar Denis BUREAU
Exercice 7.47.1
par Denis BUREAU, mardi 19 novembre 2013, 15:19
 

Après avoir lu ces explications sur les paquetages en Java, découper le projet en paquetages en répartissant les classes le plus "logiquement" possible.

Contraintes :
1) la classe Game doit rester hors de tout paquetage
2) le nom de chaque paquetage doit commencer par pkg_
3) le nombre de paquetages doit être supérieur à 2
4) le nombre de classes par paquetage doit être supérieur à 2

Tout recompiler : il ne doit y avoir aucun warning.

Avatar Denis BUREAU
Re: Exercice 7.47.1
par Denis BUREAU, lundi 24 février 2014, 15:25
 

Un étudiant a écrit :

Point 1 :
Pouvons-nous utiliser un paquetage parent pour tout le jeu, qui contiendrait tous les autres paquetages du jeu, mais aussi cette classe, conformément à
http://docs.oracle.com/javase/specs/jls/se7/html/jls-7.html#jls-7.4.2 ?
(cela permet aussi d'utiliser l'option -subpackages pour générer la javadoc)

Point 2 :
Peut-on s'arranger avec certaines conventions, en particulier celle de nommage des paquetages avec le préfixe "pkg_"  qui est véritablement lourde en particulier lorsqu'on les emboîte (pkg_machin.pkg_truc.pkg_bidule.maMethode() ) ?

Avatar Denis BUREAU
Re: Exercice 7.47.1
par Denis BUREAU, lundi 24 février 2014, 15:47
 

Point 1 :
Oui. Mais pour que votre projet soit accepté par le serveur sur lequel vous devrez rendre votre projet, vous devrez conserver une copie de la classe Game (*) en dehors de tout paquetage.

Point 2 :
- il n'est pas conseillé dans ce projet d'utiliser 3 niveaux de paquetages (un ou deux suffisent)
- ajouter "pkg_" ne peut être considéré comme" véritablement lourd"
- cette convention permet de mieux reconnaître les identificateurs de paquetages dans certaines circonstances

(*) cette copie peut très bien ne contenir que public class Game { }

Avatar Pacien TRAN-GIRARD
Re: Exercice 7.47.1
par Pacien TRAN-GIRARD, mardi 25 février 2014, 17:38
 

Les conventions de nommage des variables ne sont pas gênantes puisqu'elles sont internes aux paquetages et qu'elles n'influencent pas l'utilisation qui peut en être faite.

Cependant, celle concernant le préfixe sur les noms de paquetages fait apparaître un problème de cohérence dès lors que l'on importe un paquetage externe ou que l'on importe le paquetage que l'ont a créé ailleurs :

import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import pkg_game.Engine;

Avatar Denis BUREAU
Re: Exercice 7.47.1
par Denis BUREAU, mercredi 26 février 2014, 11:46
 

La convention pkg_ n'a d'intérêt que pour les paquetagescréés pour le jeu et visibles sur le diagramme de classes de BlueJ, c'est-à-dire pour les sous-dossiers de votre projet BlueJ visibles dans l'explorateur de fichiers (ce qui n'est pas le cas des paquetages externes importés).

Il n'y a pas ici à chercher une cohérence, puisque cette convention permet de distinguer vos paquetages des paquetages externes dans les instructions import et les fait apparaître plus clairement (regroupés) parmi tous les fichiers de votre projet dans l'explorateur de fichiers.

Avatar Denis BUREAU
Re: Exercice 7.47.1
par Denis BUREAU, jeudi 5 juin 2014, 00:11
 

Un étudiant a écrit :

Bonsoir,

je souhaiterai importer la class Game dans une de mes class de mon package, comment faire ?

Cordialement,
Avatar Denis BUREAU
Re: Exercice 7.47.1
par Denis BUREAU, jeudi 5 juin 2014, 00:17
 

Il n'est normalement pas prévu que vous ayez besoin d'importer la classe Game.

Si vous avez une bonne raison de vouloir le faire, il faut mettre votre classe Game dans un de vos paquetages ; il n'y a donc plus de difficulté à l'importer.

Par contre, pour satisfaire aux exigences du serveur JNews lors du rendu du projet, vous devrez conserver une copie de la classe Game (*) en dehors de tout paquetage.

(*) cette copie peut très bien ne contenir que public class Game { }

Avatar Denis BUREAU
Re: Exercice 7.47.1
par Denis BUREAU, jeudi 5 avril 2018, 19:41
 

Un étudiant a écrit :

Pour l'exercice 7.47.1, je rencontre une petite difficulté.
En effet, je ne sait pas quoi mettre dans mes dossier pkg_*.
Je ne sais pas si je dois repartir juste mes fichiers .class, mes fichiers .ctxt, les deux, mes fichiers .java ...
Pouvez vous m'indiquer quels fichiers déplacer? 

Avatar Denis BUREAU
Re: Exercice 7.47.1
par Denis BUREAU, jeudi 5 avril 2018, 19:43
 

Ne vous embêtez pas à déplacer des fichiers :
faites tout directement par glisser-déplacer dans BlueJ !

Avatar Melisa KOCKAN
Re: Exercice 7.47.1
par Melisa KOCKAN, mardi 5 janvier 2021, 12:32
 

Bonjour Monsieur,

Je voulais vous poser une question concernant les exercices bonus : pouvons-nous choisir les exercices bonus que l'on veut faire ou faut-il les faire dans l'ordre ? Par exemple, je souhaiterai ne pas faire l'exercice abstract command 7.47, mais essayer d'autres exercices bonus comme l'exercice paquetage 7.47.1.

En vous remerciant par avance de votre réponse et en vous souhaitant une bonne journée,
Cordialement,
Melisa Kockan

Avatar Denis BUREAU
Re: Exercice 7.47.1
par Denis BUREAU, mardi 5 janvier 2021, 13:17
 

L'exercice 7.47 étant particulièrement long et compliqué, vous pouvez le passer pour faire les exercices bonus suivants.

Tout en faisant attention à ne pas décaler la date de rendu de la version finale pour cela.